﻿//------------------------------------------------------------------------------
// <copyright file="EventID.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
//------------------------------------------------------------------------------

namespace Microsoft.Internal.GamesTest.Rpc.Client.Telemetry
{
    /// <summary>
    /// Event IDs for RPC Client Event Source.
    /// </summary>
    public enum EventId
    {
        /// <summary>
        /// This item is required by Code Analysis.
        /// </summary>
        None = 0,

        /// <summary>
        /// Written when RPC Client module has loaded.
        /// </summary>
        ModuleLoaded = 10,

        /// <summary>
        /// Written when an object has been created.
        /// </summary>
        ObjectCreated,

        /// <summary>
        /// Written when a method has been called.
        /// </summary>
        MethodCalled,

        /// <summary>
        /// Written when a connecting to a remote server.
        /// </summary>
        TryConnect,

        /// <summary>
        /// Written when a connection attempt succeeds.
        /// </summary>
        Connected,

        /// <summary>
        /// Written when disconnecting from a remote server.
        /// </summary>
        Disconnected,

        /// <summary>
        /// Written when invoking a remote method.
        /// </summary>
        InvokeRemoteMethod,

        /// <summary>
        /// Written when the invoking a remote method throws a predefined exception.
        /// </summary>
        InvokeRemoteMethodThrewPredefinedException,

        /// <summary>
        /// Written when the invoking a remote method throws a custom exception.
        /// </summary>
        InvokeRemoteMethodThrewCustomException,

        /// <summary>
        /// Written when invoking a method succeeds.
        /// </summary>
        InvokeRemoteMethodReturn,

        /// <summary>
        /// Written when subscribing to an event.
        /// </summary>
        Subscribe,

        /// <summary>
        /// Written when unsubscribing from an event.
        /// </summary>
        Unsubscribe,

        /// <summary>
        /// Written when a subscribed method is invoked.
        /// </summary>
        SubscriptionMethodInvoked,

        /// <summary>
        /// Written when registering an exception factory.
        /// </summary>
        RegisterExceptionFactory,

        /// <summary>
        /// Written when an RpcArchive is constructed.
        /// </summary>
        RpcArchiveConstructed,

        /// <summary>
        /// Written when getting a value from a RpcArchive.
        /// </summary>
        GetNamedValue,

        /// <summary>
        /// Written when setting a value in a RpcArchive.
        /// </summary>
        SetNamedValue,

        /// <summary>
        /// Written when getting a collection from a RpcArchive.
        /// </summary>
        GetNamedCollection,

        /// <summary>
        /// Written when setting a collection in a RpcArchive.
        /// </summary>
        SetNamedCollection,
    }
}
